import java.util.ArrayList;
import java.util.List;

/*
 * @lc app=leetcode.cn id=73 lang=java
 *
 * [73] 矩阵置零
 */

// @lc code=start
class Solution {
    // 先把功能实现再说。
    // 遇到一个0，就记录它所在的行列。并且它的行列不用再访问
    // 不访问它的行列这点有点麻烦，暂时不实现
    public void setZeroes(int[][] matrix) {
        int m = matrix.length;
        int n = matrix[0].length;
        List<Integer> row = new ArrayList<>();
        List<Integer> colum = new ArrayList<>();
        // 记录存在0的行号，列号。
        for(int i =0 ; i<m ;i++){
            for(int j = 0 ;j<n;j++){
                if(matrix[i][j]==0){
                    row.add(i);
                    colum.add(j);
                }
            }
        }
        for(var i : row){//把整行置0
            matrix[i] = new int[n];//重新new即可重置为0
        }
        for(var i : colum){//把整列置0
            for(int j = 0 ;j<m;j++){
                matrix[j][i]= 0 ;
            }
        }
    }
}
// @lc code=end

